#include<stdio.h>
#include<stdlib.h>
#include "opencvFunctions.h"
//#include "openjscadFunctions.h"
#include "imageEdit.h"
#include <string>


vector<Vec4i> paredes;
string origen, destino, nombre;
int main(int argc, const char** argv)
{
	string a1, a2, a3, escala, altura, anchoMaximo, largoMaximo, paredesJS, horno, inodoro, ducha, mesa, silla, cama, lavamanos,sillon, heladera ;


	std::ifstream backstory("c://exe//arguments.txt");
	if (backstory.is_open())
	{
		getline(backstory, a1); //ruta
		getline(backstory, a2); //nombre del archivo con extension
		getline(backstory, a3); //nombre del archivo sin extension
		getline(backstory, escala); 
		getline(backstory, altura);
		getline(backstory, anchoMaximo);
		getline(backstory, largoMaximo);
		getline(backstory, paredesJS);
		getline(backstory, horno);
		getline(backstory, inodoro);
		getline(backstory, ducha);
		getline(backstory, mesa);
		getline(backstory, cama);
		getline(backstory, sillon);
		getline(backstory, heladera);
		getline(backstory, lavamanos);

		backstory.close();
	}

	setAnchoMaximo(anchoMaximo);

	setLargoMaximo(largoMaximo);

	setColorParedes(paredesJS);

	setColorHorno(horno);

	setColorInodoro(inodoro);

	setColorDucha(ducha);

	setColorMesa(mesa);

	setColorSilla(silla);

	setColorCama(cama);

	setColorSillon(sillon);

	setColorHeladera(heladera);

	setColorLavamanos(lavamanos);

	setAlturaPared(stod(altura) * 30 / 200);

	setCotay(90);

	setCotax(30);

	setLargo(842);

	setLargoOpencv(842);

	origen = a1 + "\\" + a2;

	setRutaModelos(a1 + "\\modelos\\");

	destino = a1 + "\\";

	openScadFile(a1 + "\\examples\\");

	completarParedes(origen, destino, a3 + "-completedWalls.jpg");

	editImage(a1 + "\\" + a3 + "-completedWalls.jpg", destino, a3 + "-walls.jpg");
	
	String rutaParedes = a1 + "\\" + a3 + "-walls.jpg";

	paredes = determinarUbicacionParedes(rutaParedes);

	imprimirParedes(paredes);

	DetectarObjetos(origen);
	
	closeScadFile(stod(escala) / 50);

	return 0;

}

//OTROS
//editImage(argv[1], argv[2], argv[3]);

//origen = argv[1];
//paredes = determinarUbicacionParedes(origen);